#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "tp3.h"
#define tamanho 100

  //TIPO
  //verificar parametros... acredito q seja soh preciso a sk ela vai apontar pra
  //lista invertida q aponta pra pk...
  tp BuscaSKtipo(PK *lista,int nsk,int *cont){
    PK *found,*indicador;
    tp tips;
    FILE *listainvertida;
    char c, s[100],aux[100],buffer[200];
    int i=0,j=FALSE,k=0,nrraux=1,contador=1,inc=0;
    listainvertida=fopen("listatipo.dat","r");
    printf("Entre com as palavras com as quais deseja buscar:\n");
    getchar();
    scanf("%c",&c);
    while(c=='\n'){
      printf("A palavra deve conter no minimo 1 caractere!\n");
      scanf("%c",&c);
    }
    while(c!='\n'){
      j=TRUE;
      s[i]=c;
      i++;
      if(i>tamanho){
        printf("A palavra deve conter no maximo 100 caracteres!\n");
        i=0;
        printf("Digite novamente!\n");
        while(c!='\n'){
          scanf("%c",&c);
        }
        j=FALSE;
      }
      scanf("%c",&c);
      if(s[0]==' '){
        i=0;
        j=FALSE;
      }       
      if(j==FALSE && i==0){
        while(c=='\n'){
          printf("A palavra deve conter no minimo 1 caractere!\n");
          scanf("%c",&c);
        }
      }
    }
    s[i]='\n';
    i=0;
    while(s[i]!='\n'){
      i++;
    }
    while(i<=(tamanho-1)){
      s[i]=' ';
      i++;
    }
    i=0;
    while(s[i]!=' ' && i<tamanho){
      k=0;
      while(s[i]!=' ' && i<tamanho){
        aux[k]=s[i];
        i++;
        k++;
      }
      i++;
      while(k<100){
        aux[k]=' ';
        k++;
      }
    }
//############# aux possui a palavra inicio da busca
    for(k=0;k<100;k++){
     buffer[k]=aux[k];
    }
    for(k=100;k<200;k++){
     buffer[k]=' ';
    }


    if(nsk>0){
      found=BSearch(lista,buffer,0,nsk-1);
    }
    else{
      found=NULL;
    }
    if(found == NULL){
      printf("NAO HA OBRAS COM ESSE NOME\n");
    }
    else{
      fseek(listainvertida,((found->NRR)*104)+100,0);
      fread(&nrraux,1,4,listainvertida);
      while(nrraux!= -1){
        (*cont)++;             
        contador++;
        fseek(listainvertida,((nrraux)*104)+100,0);
        fread(&nrraux,1,4,listainvertida);
      }       
      tips = (tp)malloc(sizeof(tipos)*contador);
      nrraux=0;
      fseek(listainvertida,((found->NRR)*104),0);
      fread(tips[inc].tipo,1,100,listainvertida);
      //fread(buffer,1,200,listainvertida);
      fseek(listainvertida,((found->NRR)*104)+100,0);
      fread(&nrraux,1,4,listainvertida);
      while(nrraux!=-1){
        inc++;
        fseek(listainvertida,(nrraux)*104,0);
        fread(tips[inc].tipo,1,100,listainvertida);
        //fread(buffer,1,200,listainvertida);
        fseek(listainvertida,((nrraux)*104)+100,0);
        fread(&nrraux,1,4,listainvertida);
      }
    }
    //necessita de um free no titulos...
    fclose(listainvertida);
    return tips;
  }
